iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

前言

隨著上一篇文章我們設定完所有相關的開發環境後,也熟悉各項工具所在位置後,接著再來介紹一個好用的套件 Lombok

介紹

Lombok 是一個 Java 庫,它使用注解來自動生成常見的 Java 代碼,如 getter、setter、構造函數等。它的主要目標是減少樣板代碼,提高代碼的可讀性和維護性,透過使用註解的方式為程式碼添加標籤,使得開發者可以大大簡化 Java 程式碼。

添加方式

我們可以在建立一個新專案時先將他載入專案裡面
image

或者也可以在 Maven 項目中添加

<dependency>  
    <groupId>org.projectlombok</groupId>  
    <artifactId>lombok</artifactId>  
    <version>1.18.22</version>  
    <scope>provided</scope>  
</dependency>

常用註解

以下列出幾項常見的註解

  1. @Getter 和 @Setter
    這兩個注解可以自動為類的字段生成 getter 和 setter 方法。
    透過這個註解可以省去Getter跟Setter的程式碼,直接就可以使用相同的功能
    大概使用方法如下:

    @Getter 
    @Setter  
    public class User {  
        private String name;  
        private int age;  
    }  
    
    public class Main {  
        public static void main(String[] args) {  
            User user = new User();  
    
            // 使用 setter 方法  
            user.setName("John Doe");  
            user.setAge(30);  
    
            // 使用 getter 方法  
            String name = user.getName();  
            int age = user.getAge();  
    
            System.out.println("Name: " + name);  
            System.out.println("Age: " + age);  
        }  
    }
    
  2. @ToString
    自動生成 toString() 方法,透過這個註解可以省去額外設計toString的程式碼
    大概使用方式如下:

    @Getter
    @Setter
    @ToString  
    public class User {  
        private String name;  
        private int age;  
    }  
    
    public class Main {  
        public static void main(String[] args) {  
            User user = new User();  
    
            // 使用 setter 方法  
            user.setName("John Doe");  
            user.setAge(30);  
    
            String userData = user.toString();
            System.out.println(userData);
        }  
    }
    
    // 則最後輸出結果會像這樣
    // User(name=John Doe, age=30)  
    
    
  3. @NoArgsConstructor、@RequiredArgsConstructor 和 @AllArgsConstructor
    這些注解用於生成不同類型的構造函數,這些註解省略了建立建構元時的程式碼
    * @NoArgsConstructor
    添加一個無參數的建構元
    * @AllArgsConstructor
    添加一個包含所有參數的建構元
    * @RequiredArgsConstructor
    為有標記為 finalNotnull 的參數建立建構元

  4. @Data
    這是一個複合注解,相當於 @Getter, @Setter, @ToString, @EqualsAndHashCode 和 @RequiredArgsConstructor 的組合
    大概使用方式如下:

    @Data  
    public class User {  
        private String name;  
        private int age;  
    }
    
  5. @Builder
    : 生成建造者模式代碼,透過這個註解我們可以更便利的填入資料,並且這種填入資料的方式支援部分填值的功能,代表不用全部的項目都必須要填值才可以建立
    大概使用方式如下:

    @Builder  
    public class User {  
        private String name;  
        private int age;  
    }
    
    public class Main {  
        public static void main(String[] args) {  
            User user = new User();  
    
            // 正常設值
            User user = User.builder()
                        .name("Jane Doe")
                        .age(30)
                        .build();
    
            // 部分設值
            User user = User.builder()
                        .name("Jane Doe")
                        .build();
    
        }  
    }
    
  6. @Slf4j
    自動為類添加 SLF4J 日誌對象,也就是將添加 Log 的方式簡化,不使用這個註解的話使用 Log 需要先獲取 Log 的實例才能使用,使用這個註解的話就可以省略這個部分,直接使用 Log 添加訊息
    大概使用方式如下:

    @Slf4j  
    public class LogExample {  
        public void logSomething() {  
            log.info("一般訊息"); 
            log.error("錯誤訊息");
        }  
    }
    

總結

本次教學介紹了 Lombok,透過 Lombok 的幫助,我們可以使程式碼變得更加簡潔、優雅,不管是開發上速度的提升,還是維護上都有顯著的幫助。


上一篇
[DAY 05] IntelliJ IDEA 介面介紹
下一篇
[DAY 07] 建立第一個簡單的後端系統 1
系列文
智慧語義互動平台:基於Spring和Semantic Kernel的Android應用創新20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言